Avant-propos

promo2016
Figure 1. La promo 2016/2017
promo2017
Figure 2. La promo 2017/2018

Désolé…​

  • …​ pour l'anglais (really?)

  • …​ de ne pas être un spécialiste d’Android

  • …​ que vous soyez seulement la 2ème promo à subir ce cours

  • …​ que ce cours arrive avant que vous sachiez développer en Android/Mobile (majorité)

  • …​ que vous ayez à bosser sans ordi ce matin! (au moins 1h30!)

1. Content

  • Brainstorming & organization

  • Internet search & site web building

  • UML & Modeling for Mobile Applications

  • Case study

2. Organisation prévue

Module de 21h (14 créneaux de 1,5h):

  • 1 créneau semaine 40

    • [1] Intro & Brainstorming (03/10)

  • 3 créneaux semaine 41

    • [2] Travail de groupe (09/10)

    • [3] Première maquette du site Web (09/10)

    • [4] UML rappel et concepts importants (09/10)

  • 10 créneaux semaine 42

    • [5] Gestion de projet spécifique, UML (??)

    • [6] Mise en oeuvre sur une étude de cas (??)

    • [7-8] Reverse ingéniérie d’une application Android (??)

    • [9-13] Modélisation : projet perso (binôme) (??)

    • [14] Présentation publique de votre appli perso (binôme) (??)

    • [14] QCM exam final (??)

3. Let’s start Brainstorming

whiteboard2015
Figure 3. Résultat 2015/2016
Technos2016
Figure 4. Résultat 2016/2017 (merci Nathan Coustenoble pour la prise de note)
brainstorm2017
Figure 5. Résultat 2017/2018

Résultats du brainstorming 2018/2019 TBD…​ :

Répartition des technos connues (depuis 2015) :

pubchart?oid=1107659460&format=image

4. Wrap-up

Par petits groupes :

  • [1] Préparation du site web

  • [2] Liste des concepts UML connus et utiles

  • [3] Outils et langages de description d’écrans

  • [4] Plateformes de développement Android

  • [5] Différences iOS /Android

  • […​] Résultats du brainstorm

Les numéros ne représentent pas un ordre d’importance!

4.1. Plans B …​

  • Spécificités des applications mobiles

  • Modélisation des interfaces

  • Modélisation de l’architecture

  • Modélisation du comportement

  • Agilité et applications mobiles

4.2. [1] Site web des fiches

Je fait parti de ce groupe!

4.3. [2] Concepts UML connus

  • 1. Recensement des concepts connus

    • diagrammes

    • concepts dans ces diagrammes

    • méthodes (RUP, OpenUP, Agile)

    • ⇒ Google Sheet ?

  • 2. Pour le Mobile Modeling

    • brainstorming

4.4. [3] Outils et langages de description d’écrans

  • Type SNI (Schéma de Navigation des Interfaces)

  • Dessin / Générationd de code

  • Focus sur les Open Sources of course

  • …​

4.5. [4] Plateformes de développement Android

  • Avis objectifs (chiffrés)

  • Aspects historiques

  • Focus sur les Open Sources of course

  • …​

4.6. [5] Différences /

  • Niveau modélisation

  • Concepts

  • Cycle de développement

  • …​

4.7. Consignes

Pour chaque groupe (sauf [1]) :

  • Exprimer le problème

  • Rechercher les solutions existantes

  • Brainstormer sur la meilleure solution

  • La formaliser un minimum

  • Remplir un poster sous la forme d’une fiche (cf. point suivant)

  • Merger sa branche

4.8. Fiche

  • Titre

    • Motivations & problems (shortly)

    • Current approaches

    • Proposed approach

    • Example

5. Exemple complet de démarche "ad hoc" autour d’UML

Nous allons aborder une étude de cas tirée du livre de Pascal Roques.

prfc

5.1. Le cahier des charges

Il s’agit de développer un service de vente en ligne (http://jeBouquine.com).

Depuis l’écriture du livre un vrai site de vente utilise cette URL!

5.2. Des besoins au code

(c) Pascal Roques
Figure 6. Le gap à combler (image tirée de [Roques2007a])

5.3. Raffinement des besoins

(c) Pascal Roques
Figure 7. Raffinement des besoins (image tirée de [Roques2007a])

5.4. Près du code

(c) Pascal Roques
Figure 8. Près du code (image tirée de [Roques2007a])

5.5. Comment trouver les classes ?

(c) Pascal Roques
Figure 9. Comment trouver les classes ? (image tirée de [Roques2007a])

5.6. Comment trouver les interactions ?

(c) Pascal Roques
Figure 10. Comment trouver les interactions ? (image tirée de [Roques2007a])

5.7. Liens entre diagrammes

(c) Pascal Roques
Figure 11. Liens entre diagrammes (image tirée de [Roques2007a])

5.8. Démarche complète

(c) Pascal Roques
Figure 12. Démarche complète (image tirée de [Roques2007a])

6. Diagrammatic models

6.1. UML Use Case Diagram

Exemple de Diagramme d’UC
Figure 13. Exemple de Diagramme d’UC

6.2. SysML Requirements Diagram

Exemple de Diagramme d’Exigence SysML
Figure 14. Exemple de Diagramme d’Exigence SysML

6.3. Sketch and drawings (Maquettes)

Dessin complexe
Figure 15. Un exemple de "mockup" réalisé avec l’outil balsamiq
L’IUT de Blagnac a une licence éducation qui vous permet d’utiliser gratuitement Balsamiq : https://iutblagnac.mybalsamiq.com.

6.4. UML Class Diagram

Exemple de Diagramme de classe
Figure 16. Exemple de Diagramme de classe

6.5. SNI: Schéma de Navigation d’Interface

Exemple de SNI
Figure 17. Exemple de SNI
Il existe un plug-in Eclipse pour SNI: http://sourceforge.net/projects/visual-sni/
Lien UC / SNI
Figure 18. Lien UC / SNI

6.6. UML State Machines

Diagramme d’états
Figure 19. Un Diagramme d’états

6.7. UML Sequence Diagram

Diagramme de Séquence
Figure 20. Un Diagramme de Séquence

6.8. UML Component Diagram

Diagramme de Composant
Figure 21. Un Diagramme de Composant

6.9. SysML Block Definition Diagram

Exemple de Diagramme de BDD SysML
Figure 22. Exemple de Diagramme de BDD SysML

6.10. SysML Internal Block Definition Diagram

Exemple de Diagramme d’IBD SysML
Figure 23. Exemple de Diagramme d’IBD SysML

6.11. UML deployment diagram

Deployement
Figure 24. Example of application deployment to Android (see [uml-diagrams])

7. Process examples

7.1. One example

  • 1) Identify the app users

  • 2) Identify the main functionalities

  • 3) Analyzing and expanding each functionality

7.2. Agile for Mobile Application Development

7.2.1. Example 1

Some restrictions with mobile application development are:

  • Mobile has restrictions: size of the apps, …​

  • Application should be downloadable very fast

  • Update applications quickly and smoothly

  • Error free and fast

  • Seamlessly interact with backend server as needed

7.2.2. Example 2

Challenges presented by developing mobile apps:

  • Short life cycles

  • Short development cycles

  • Limited hardware

  • Frequently changing user demands

  • Must be easily updateable

  • Must download quickly

7.2.3. Example 3

An “Agile with Discipline” approach for mobile app development

agile with discipline model
Figure 25. IBM approach for mobile app development (see [IBM])
Taken from [IBM]

7.2.4. Example 4

Multi-target User Interface design & Generation using MDE

Veldhuis
Figure 26. (Taken from [Veldhuis2013])]
Taken from [Veldhuis2013]

8. Reverse Engineering tools

9. Etude de cas : MIU (Management of Irit-Ut2j)

9.1. Cahier des charges

SLAT

Le Laboratoire IRIT est un des plus gros laboratoire informatique de France. C’est une unité mixte de recherche, ce qui signifie qu’en plus du CNRS, elle a d’autres tutelles (les 3 universités toulousaine, l’INPT, etc.).

Chaque tutelle est dotée d’un représentant local du laboratoire qui fait le lien entre le laboratoire et la tutelle. Pour l’UT2J, ce représentant, c’est moi (Jean-Michel Bruel). Les membres UT2J du Laboratoire IRIT sont organisés en équipes. Ils se partagent un buget alloué chaque année par l’université (environ 38K€ pour 2017).

Parmi les responsabilité du responsable IRIT-UT2J, on trouve de nombreuses tâches administratives (au point de devoir maintenir une F.A.Q - cf. https://bit.ly/irit-ut2j).

Celles qui sont le plus consomatrices d’énergie sont les tâches en relation avec les dépenses.

demandeAchat
Figure 27. exemple de "Demande d’achats" (un simple fichier excel)

Je vous sollicite donc pour la modélisation d’une application mobile qui sera potentiellement développée dans le future, et qui permettra de faciliter cette gestion. Pour simplifier les description suivantes, nous appelerons cette application MIU (Management of IRIT-UT2J)[1].

Voici quelques caractéristiques et besoins clients (en vrac) :

  • MIU devra fonctionner sur des mobiles et tablettes Android .

  • On pourra différencier les rôles des personnes utilisant l’application (chercheurs, doctorants, responsable, gestionnaire).

  • On imaginera qu’il existe un accès (Web, fichier .json, Google Doc) aux informations concernant les membres.

  • Chaque utilisateur poura saisir une dépense (de type achats ou mission). Une dépense peut être prévisionnelle (devis pour un restaurant par exemple, ou déplacement à l’étranger), précise (achat de matériel sur devis) ou confirmée (remboursement de mission a posteriori par exemple).

  • Un utilisateur ne pourra pas engager de dépense si celle-ci dépasse le budget de son équipe.

  • La gestionnaire ou le responsable peuvent mettre à jour les montants de dépenses.

  • Concernant les frais, chacun aura sur sa "page personnelle" les informations concernant le solde global du compte de son équipe.

  • On pourra envisager toute option utile pour le futur (comme le calcul d’avance sur mission).

  • La gestionnaire et le responsable seront systématiquement informé de toute déclaration d’intention de dépense.

Quelques commentaires :

  • Chaque membre est toujours rattaché à une équipe (et une seule)

  • Chaque équipe dispose d’un budget propre (division au prorata de ses membres du budget global).

  • Un certain nombre de dépenses sont "communes" et viennent imputer le budget global (seuls la gestionnaire et le responsable peuvent saisir ces dépenses)

  • Les dépenses sont consultables (lecture seule) par tous les membres UT2 du Laboratoire IRIT.

finances IRIT UT2J
Figure 28. Exemple de gestion actuelle des dépenses

9.2. Questions

  1. Réalisez un diagramme des cas d’utilisation de cette application.

    uc
    Figure 29. Exemple 2015/2016 (Ballades VTT)
  2. Réalisez un diagramme de domaine (diagramme des classes métiers) de cette application.

    dc2
    Figure 30. Exemple 2015/2016 (Ballades VTT)
  3. Réalisez un diagramme (de votre choix) pour représenter les écrans (et leur enchainement) de votre application.

    balsamiq
    Figure 31. Exemple 2015/2016 d’une maquette en Balsamiq (Ballades VTT)

Un écran est composé d’éléments structurels. Il peut donc être représenté avec un diagramme de classe.

enchainement
Figure 32. Exemple 2015/2016 (Ballades VTT)

Les enchainements d’écrans peuvent être décrits comme des comportements. On peut utiliser :

enchainement
Figure 33. Une correction possible - Exemple 2016/2017 (SLAT Parapente)
enchainement slat
Figure 34. Une correction possible - Autre exemple 2016/2017 (SLAT Parapente)

9.4. Résultats attendus

  • .zip avec figures, modèles .uml, code, etc.

9.5. Evaluation

Rappelons les conseils habituels :

  • clarté des diagrammes et des choix (explicites) de conception ou d’interprétation réalisés

  • cohérence entre les diagrammes

L’évaluation portera principalement sur les critères suivants :

Table 1. Critères
Critère Type de critère Poids approximatif

Diagramme des UC

Correction, pertinence

10%

Diagramme des Classes Domaine

Correction, pertinence

10%

Maquettes utilisateur / Écrans

Correction, pertinence

20%

Diagrammes d’enchainement d’écran

Correction, pertinence

20%

Cohérence inter-modèles (SNI/DSS, UC/DSS/DS/DCP)

Correction, pertinence

15%

Communication/Présentations/Ignite

subjectif :-)

15%

Clarté – Présentation du Dossier

subjectif :-)

10%

Vous pouvez insérer une section "auto-évaluation" dans votre rapport, qui reprend cette grille et vous permet de vous auto-évaluer.

References and useful links

References

  • [] Ana Gram. Raisonner pour programmer. Dunod, 1986.

  • [] Jim Highsmith and Martin Fowler. The agile manifesto. Software Development Magazine, 9(8) :29–30, 2001.

  • [[[1030005]]] Kieran Conboy and Brian Fitzgerald. Toward a conceptual framework of agile methods : a study of agility in different disciplines. In WISER ’04 : Proceedings of the 2004 ACM workshop on Interdisciplinary software engineering research, pages 37–44, New York, NY, USA, 2004. ACM.

  • [] Les Cahiers du Programmeur, UML2, Pascal Roques 3ème Edition, Eyrolles, 2007.

  • [] UML 2 par la pratique, Pascal Roques 6ème Edition, Eyrolles, 2007.

  • [] UML pour les développeurs, Xavier Blanc, Eyrolles, 2006.

  • [] Le projet d’urbanisation du S.I., C. Longépé, 3ème édition, Dunod, 2006.

  • [] Management des SI, M. & P. Gillet, Dunod, 2008.

  • [] Modélisation objet avec UML. Pierre-Alain Muller & Nathalie Gaetner, Eyrolles, 2003.

  • [] http://fr.wikipedia.org/wiki/Unified_Process

  • [] http://developer.android.com/guide/components/fundamentals.html

Glossary

Ressources

The following definitions are only informative. You can find usefull other sources here:

ATL

_ATLAS Transformation Language

DRY

Don’t Repeat Yourself

EMF

_Eclipse Modeling Framework

IHM

Interface Homme-Machine

MCF

Modèle Conceptuel des Flux

MCT

Modèle Conceptuel des Traitements

MOA/MOE

Maîtrise d’ouvrage (MOA) Maîtrise d’oeuvre (MOE)

MOF

Modèle Organisationnel des Flux

MOT

Modèle Organisationnel des Traitements

OMG

Object Management Group

PPN

Programme Pédagogique National

SEF

Schéma d'Enchaînement des Fenêtres

SEP

Schéma d'Enchaînement des Pages

SI

Système d'Information

SNI

Schéma de Navigation d'Interfaces

SO

Système Organisationnel

SysML

System Modeling Language

TRL

Technology Readiness Level

URL

Universal Ressource Locator

About…​

This web site has been developped by JMB using the following (open and free) tools:


1. En clin d’oeil à D. Hofstadter